/**
 * 格式化工具
 * @author hejiacheng
 * @date 2021-12-3
 */

import {
  verifyNumber
} from './verifyUtil'

/**
 * 格式化时间
 * @param {时间字符串} dateStirng 
 */
export function formatTime(dateStirng) {
  // 如果没有时间 返回 空串
  if (!dateStirng) {
    return ""
  }
  // 时间对象
  let date = new Date(Date.parse(dateStirng.replace(/-/g, "/")))

  // 返回日期 直接返回年月日
  // 获取完整的年份(4位,1970-至今)
  let year = date.getFullYear()
  // 获取当前月份(0-11,0代表1月)
  let month = date.getMonth() + 1
  // 获取当前日(1-31)         
  let day = date.getDate()
  // 获取当前小时数(0-23)          
  let hour = date.getHours()
  // 获取当前分钟数(0-59)          
  let minute = date.getMinutes()
  // 获取当前秒数(0-59)    
  let second = date.getSeconds()

  // 现在时间
  let nowDate = new Date()
  let dateTimestamp = date.getTime()
  let nowDateTimestamp = nowDate.getTime()

  // 两个时间间隔 秒 数
  let count_second = (nowDateTimestamp - dateTimestamp) / 1000

  // 几秒前
  if(count_second < 60){
    let res_i = Math.floor(count_second)
    return res_i + "秒前"
  }
  // 几分钟前
  if(count_second < 60 * 60){
    let res_i = Math.floor(count_second / 60)
    return res_i + "分钟前"
  }
  // 几小时前
  if(count_second < 24 * 60 * 60){
    let res_i = Math.floor(count_second / (60 * 60))
    return res_i + "小时前"
  }
  // 几天前
  if(count_second < 30 * 24 * 60 * 60){
    let res_i = Math.floor(count_second / (60 * 60 * 24))
    return res_i + "天前"
  }

  return year + "-" + month + "-" + day

}

/**
 * 格式化时间
 * @param {时间字符串} date 
 */
export function formatTimeByMothAndDay(date) {
  // 如果没有时间 返回 空串
  if (!date) {
    return ""
  }
  // 获取当前月份(0-11,0代表1月)
  let month = date.getMonth() + 1
  // 获取当前日(1-31)         
  let day = date.getDate()

  return month + "/" + day

}

/**
 * 格式化时间
 * @param {时间字符串} date 
 */
export function formatTimeByYearAndMoth(date) {
  // 如果没有时间 返回 空串
  if (!date) {
    return ""
  }
  // 获取完整的年份(4位,1970-至今)
  let year = date.getFullYear()
  // 获取当前月份(0-11,0代表1月)
  let month = date.getMonth() + 1
  // 获取当前日(1-31)         
  let day = date.getDate()

  return year + "-" + month

}

/**
 * 格式化数字
 * @param {时间字符串} number 
 */
export function formatNumber(number) {

  // 不是数字 原值返回
  if (!verifyNumber(number)) {
    return number
  }
  // 转化为数字
  number = parseFloat(number)

  // 转化
  if (number < 1000) {
    return number
  } else if (number >= 1000 && number < 10000) {
    let res = number / 1000
    // 保留一位小数
    res = Math.floor(res * 10) / 10
    return res + "k+";
  } else if (number >= 10000) {
    let res = number / 10000
    // 保留一位小数
    res = Math.floor(res * 10) / 10
    return res + "w+";
  }
}